Relational program logics in decomposed style
نویسنده
چکیده
Suppose you have developed a Hoare logic for your favorite programming language. You have justified the logic by defining an operational model of the language and constructing a soundness proof that interprets triples as partial correctness assertions. Now you want to interpret program analyses, validate security properties such as noninterference, or justify program transformations. You observe that all these properties are relational: they are naturally phrased over pairs of executions, for programs that are either identical or closely related. Is your program logic up to the task? This article shows how to formally decompose terminationinsensitive relational program logics into judgements from unary logics. We develop relational predicate transformers, present laws that govern their decomposition along the phrase structure, and relate them to their unary counterparts. We apply our findings to justify variants of Benton’s Relational Hoare Logic (RHL) for a language with objects, extend the logics to auxiliary state, derive a noninterference analysis in the style of Banerjee-Naumann, and develop relational interpretations of separation logic. As related executions do not have to refer to the same program syntax or employ the same notion of state, decomposition can in principle be applied to cross-language verification problems, as long as suitable one-execution logics exist.
منابع مشابه
Relational dual tableaux for interval temporal logics
Interval temporal logics provide both an insight into a nature of time and a framework for temporal reasoning in various areas of computer science. In this paper we present sound and complete relational proof systems in the style of dual tableaux for relational logics associated with modal logics of temporal intervals and we prove that the systems enable us to verify validity and entailment of ...
متن کاملRelational Decomposition
We introduce relational decomposition, a technique for formally reducing termination-insensitive relational program logics to unary logics, that is program logics for one-execution properties. Generalizing the approach of selfcomposition, we develop a notion of interpolants that decompose along the phrase structure, and relate these interpolants to unary and relational predicate transformers. I...
متن کاملCoalgebraic completeness-via-canonicity for distributive substructural logics
We prove strong completeness of a range of substructural logics with respect to their relational semantics by completeness-via-canonicity. Specifically, we use the topological theory of canonical (in) equations in distributive lattice expansions to show that distributive substructural logics are strongly complete with respect to their relational semantics. By formalizing the problem in the lang...
متن کاملReasoning About Resources in the Embedded Systems Language Hume
In this paper we present an instrumented program logic for the embedded systems language Hume, suitable to reason about resource consumption. Matching the structure of Hume programs, it integrates two logics, a VDM-style program logic for the functional language and a TLA-style logic for the coordination language of Hume. We present a soundness proof of the program logic, and demonstrate the us...
متن کاملRelational Proof System for Linear and Other Substructural Logics
In this paper we give relational semantics and an accompanying relational proof system for a variety of intuitionistic substructural logics, including (intuitionistic) linear logic with exponentials. Starting with the (Kripke-style) semantics for FL as discussed in [13], we developed, in [11], a relational semantics and a relational proof system for full Lambek calculus. Here, we take this as a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010